
rs23
(usa Ubuntu)
Enviado em 13/06/2010 - 01:11h
Fiz o seguinte programa em Assembly utilizando o editor MIPSTER
#Algoritmo soma com o While
#O registrador $t4 será usado para mostrar o valor da soma
.data
soma: .asciiz "\n Valor calculado para $t4: "
.globl main
.text
main:
#O registrador $t2 será usado para calcular a expressão da soma
#O registrador $t3 será usado para calcular a expressão par
li $t2, 0 #inicializa a soma com 0
li $t3, 100 #inicializa par com 100
loop: #inicia o Loop
add $t2, $t2, $t3
add $t3, $t3, 2
bgt $t2, 200, parar #se $t2 (par > 200) desvia para o rotulo (done)
parar:
#Procedimentos para escrever o resultado
li $v0, 4
la $a0, soma
syscall
li $v0, 1
move $a0, $t2
syscall
nop # Diretiva para o SO interromper a execução
No entanto acho que o valor da soma esta errado. Esta mostrando 100 no valor da soma.
p.s: Estou utilizando o PC SPIN para testar o funcionamento do programa.
Alguém poderia ajudar?
Grato